package com.novanok.googledocxlstest.entidad;

import java.util.PriorityQueue;
import java.util.Queue;

public class Monitor {
    private static final int CANTIDAD = 1000;
    private Queue<Cliente> clientesNube;

    public Monitor(){
        this.clientesNube = new PriorityQueue<Cliente>();
    }

    public void addClienteANube(Cliente c){
        synchronized (this.clientesNube) {
            while ( this.clientesNube.size() >= CANTIDAD )
                try {
                    this.clientesNube.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            this.clientesNube.add(c);
            this.clientesNube.notifyAll();
        }
    }

    public Cliente getClienteANube(){
        synchronized ( this.clientesNube ){
            while ( this.clientesNube.size() == 0 )
                try {
                    this.clientesNube.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            Cliente c = this.clientesNube.poll();
            this.clientesNube.notifyAll();
            return c;
        }
    }
}
